Skip to content

Conversation

@Neil-TC
Copy link

@Neil-TC Neil-TC commented Oct 8, 2025

Summary

  • Convert tools to synchronous; remove FastMCP Context usage.
  • Replace Context progress with Python logging.
  • Use CLI for DRC and PCB thumbnail; avoid tool-to-tool calls.

Root Cause

  • Context injection and async handlers cause uncallable tools in standard
    MCP clients.

Scope (files)

  • kicad_mcp/tools/netlist_tools.py
  • kicad_mcp/tools/export_tools.py
  • kicad_mcp/tools/bom_tools.py
  • kicad_mcp/tools/drc_tools.py
  • kicad_mcp/tools/drc_impl/cli_drc.py
  • kicad_mcp/tools/pattern_tools.py
  • kicad_mcp/server.py
  • kicad_mcp/context.py
  • (If helper changes present) kicad_mcp/utils/netlist_parser.py, kicad_mcp/
    utils/pattern_recognition.py, kicad_mcp/utils/drc_history.py, kicad_mcp/utils/
    kicad_utils.py

Compatibility

  • Tested on macOS (Darwin 24.5.0), MCP 1.11.0 / FastMCP 2.10.6.
  • Validated with Claude Desktop and Cherry Studio.

Breaking Changes

  • Tool signatures no longer accept ctx: Context; async tools → sync.

Testing

  • Run server: make run or python -m kicad_mcp.server
  • Netlist: extract_schematic_netlist(schematic_path)
  • BOM: analyze_bom(project.kicad_pro), export_bom_csv(project.kicad_pro)
  • DRC: run_drc_check(project.kicad_pro), then get_drc_history_tool
  • Patterns: analyze_project_circuit_patterns(project.kicad_pro)
  • Export: generate_project_thumbnail(project.kicad_pro)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant